#!/usr/bin/env python3
"""Python 3 compatibility shims"""

import sys

if sys.version_info[0] < 3:
  PY3 = False

  def b(s):
    return s

  try:
    from cStringIO import StringIO
  except ImportError:
    from StringIO import StringIO
  BytesIO = StringIO
  text_type = unicode
  binary_type = str
  string_types = (basestring,)
  integer_types = (int, long)
  unichr = unichr
  reload_module = reload
else:
  PY3 = True
  if sys.version_info[:2] >= (3, 4):
    from importlib import reload as reload_module
  else:
    from imp import reload as reload_module

  def b(s):
    return bytes(s, "latin1")

  from io import StringIO, BytesIO

  text_type = str
  binary_type = bytes
  string_types = (str,)
  integer_types = (int,)
  unichr = chr

long_type = integer_types[-1]
